Re-deploying specialized application software from proprietary processors to commodity processors brings many challenges. For example, some applications require a high-stability, high-precision clock for tracking the passage of time. However, some commodity processors lack the high-stability, high-precision clock circuitry to satisfy application requirements. This leaves the options of selecting an alternative processor, which may be expensive, or designing a custom clock circuit, which is expensive and negates certain advantages of designs with commodity processors.
High stability refers to some accepted or required level of accuracy relative to actual time. An example acceptable level of accuracy for a high-stability clock might be 1/10,000 or approximately 8.6 seconds/24 hours. The accuracy that constitutes high-stability will vary from application to application. High precision refers to an accepted or required level of granularity with which time must be measured. For example, an application may require time to be measurable in micro-seconds.
Some processors include a high-speed clock that is generally used to clock the processor logic. The accuracy of the high-speed clock is not critical because it is generally used for synchronizing the logic and not for keeping time. Example high-speed clocks are the CPU clocks of certain processors from Intel, which are phase locked to a bus clock. The CPU clock operates at some multiple of one-half the bus clock. Even though the CPU clock is fast and very precise, its accuracy cannot be relied upon for time-critical applications.
The example Intel processors also include a real time clock circuitry in addition to the CPU clock. The real time clock is based on the industry standard DS1287 PC clock having a 32,768 cycles/second reference oscillator with an accuracy of 20 parts per million. The Windows® NT operating system from Microsoft when running in the example Intel processors provides time functions having millisecond precision. Even though millisecond precision may be acceptable from some applications, other applications require greater precision.
A method and apparatus that addresses the aforementioned problems, as well as other related problems, are therefore desirable.